/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
/include/ "msm8974-lt03-leds.dtsi"
/include/ "msm8974-camera-sensor-lt03-r00.dtsi"
/include/ "msm8974-sii8240_mhl-picasso.dtsi"
/include/ "msm8974-sec-chagall-battery.dtsi"
&soc {
	serial@f991e000 {
		status = "ok";
		qcom,config-gpio = <2>;
		qcom,tx-gpio = <&msmgpio 4 0x00>;
		qcom,rx-gpio = <&msmgpio 5 0x00>;
	};
	samsung,vibrator {
		compatible = "vibrator";
		samsung,pmic_vib_pwm = <&msmgpio 27 0>;
		samsung,vib_model = <1>;
		samsung,pmic_vib_en = <0>;
		samsung,pmic_haptic_pwr_en = <0>;
		samsung,is_pmic_vib_pwm = <0>;
		samsung,pwm_period_us = <40>;
		samsung,duty_us = <36>;
		samsung,drv2603_en = <&msmgpio 91 0>;
		status = "ok";
	};

	qcom,mdss_dsi@fd922800 {
		qcom,dsi-pref-prim-pan = <&dsi_dual_2560p_cmd_right>;
		qcom,platform-supply-entry1 {
				qcom,supply-name = "vdd";
				qcom,supply-min-voltage = <3000000>;
				qcom,supply-max-voltage = <3000000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
	};

	qcom,mdss_dsi@fd922e00 {
		qcom,dsi-pref-prim-pan = <&dsi_dual_2560p_cmd_left>;
	};

	qcom,mdss_mdp@fd900000 {
		qcom,mdss-pref-prim-intf = "dsi";
		mdss_fb0: qcom,mdss_fb_primary {
			qcom,memory-reservation-type = "EBI1";
			qcom,memblock-reserve = <0x03200000 0x01F00000>;
			qcom,mdss-fb-split = <1280 1280>;
		};
	};
	qcom,hdmi_tx@fd922100 {
		status = "ok";
	};
	qcom,wcnss-wlan@fb000000 {
		status = "disabled";
	};
		
	i2c@13 {
		cell-index = <13>;
		compatible = "i2c-gpio";
		gpios = <&msmgpio 55 0 /* sda */
			 &msmgpio 56 0 /* scl */
			 >;
		i2c-gpio,delay-us = <2>;
		#address-cells = <1>;
		#size-cells = <0>;
		fsa9485@25 {
			compatible = "fsa9485,muic";
			reg = <0x25>; /* 0x4A >> 1 */
			interrupt-parent = <&pm8941_gpios>;
			interrupts = <4 0>;
			fsa9485,scl-gpio = <&msmgpio 56 0x00>;
			fsa9485,sda-gpio = <&msmgpio 55 0x00>;
			fsa9485,irq-gpio = <&pm8941_gpios 4 0x1>;
		};
	};

	i2c@15 {
		cell-index = <15>;
		compatible = "i2c-gpio";
		gpios = <&msmgpio 29 0 /* sda */
		&msmgpio 30 0 /* scl */
		>;
		#address-cells = <1>;
		#size-cells = <0>;

		tc360@60 {
			compatible = "coreriver,coreriver-tkey";
			reg = <0x60>;
			interrupt-parent = <&pm8941_gpios>;
			interrupts = <30 0>;
			vdd_led-supply = <&pm8941_l23>;
			coreriver,vcc_en-gpio = <&pm8941_gpios 18 0x1>;
			coreriver,sda-gpio = <&msmgpio 29 0x00>;
			coreriver,scl-gpio = <&msmgpio 30 0x00>;
			coreriver,irq-gpio = <&pm8941_gpios 30 0x1>;
			coreriver,tkey-keycodes = <254 158>;
			coreriver,i2c-pull-up = <1>;
		};
	};

	i2c@22 {
		cell-index = <22>;
		compatible = "i2c-gpio";
		gpios = <&msmgpio 109 0 /* sda */
		&msmgpio 108 0 /* scl */
		>;
		barcode_emul_ice4@19 {
			compatible = "barcode_hlte,barcode_emul_hlte";
			reg = <0x19>;
			interrupt-parent = <&msmgpio>;
			interrupts = <64 0>;
			vdd-supply = <&pm8941_l19>;
			barcode,cresetb = <&msmgpio 57 0x01>;
			barcode,reset_n = <&msmgpio 132 0x00>;
			barcode,scl-gpio = <&msmgpio 108 0x00>;
			barcode,sda-gpio = <&msmgpio 109 0x00>;
			barcode,irq-gpio = <&msmgpio 64 0x00>;
			barcode,i2c-pull-up = <1>;
		};
	};

	i2c@23 {
		cell-index = <23>;
		compatible = "i2c-gpio";
		gpios = <&msmgpio 60 0 /* sda */
		&msmgpio 61 0 /* scl */
		>;
		sx9500-i2c@28 {
			compatible = "sx9500-i2c";
			reg = <0x28>;
			sx9500-i2c,nirq-gpio = <&pm8941_mpps 2 0x00>;
			sx9500-i2c,scl-gpio = <&msmgpio 60 0x00>;
			sx9500-i2c,sda-gpio = <&msmgpio 61 0x00>;
			sx9500-i2c,i2c-pull-up = <1>;
		};
		an30259a@30 {
			compatible = "an30259a,led";
			reg = <0x30>;
		};
	};

	actuator0: qcom,actuator@18 {
		compatible = "qcom,actuator";
		cell-index = <0>;
		reg = <0x18>;
		qcom,cci-master = <0>;
	};

	/* BLSP#2 */
	i2c@f9924000 {
		status = "okay";
		qcom,scl-gpio = <&msmgpio 7 0>;
		qcom,sda-gpio = <&msmgpio 6 0>;
		qcom,noise-rjct-scl = <1>;
		synaptics@20 {
			compatible = "synaptics,rmi4-ts";
			reg = <0x20>;
			interrupt-parent = <&msmgpio>;
			interrupts = <79 0>;
			vcc_i2c-supply = <&pm8941_l10>;
			synaptics,supply-num = <1>;			/* the number of regulators */
			synaptics,supply-name = "8941_l10";	/* the name of regulators, in power-on order */
			synaptics,external_ldo = <&pm8941_gpios 10 0x1>;
			synaptics,irq-gpio = <&msmgpio 79 0x1>;
			synaptics,i2c-pull-up = <1>;
			synaptics,tsp-project = "Chagall";
			synaptics,tsp-coords = <1559 2559>;
			synaptics,tablet = <1>;
			synaptics,tsp-extra_config = <0 0 0 0>;/* <"pwrctrl", "N", "N", "N"> */
		};
	};

	i2c@f9925000 {
	actuator1: qcom,actuator@18 {
		compatible = "qcom,actuator";
		cell-index = <1>;
		reg = <0x18>;
				gpios = <&msmgpio 10 0>,
					<&msmgpio 11 0>;
				qcom,gpio-req-tbl-num = <0 1>;
				qcom,gpio-req-tbl-flags = <1 1>;
				qcom,gpio-req-tbl-label = "I2C_DATA0",
							  "I2C_CLK0";
		};
	};

	i2c@f9927000 {
		status = "disabled";
	};
	aliases {
		spi5 = &spi_5;
	};
	spi_5: spi@f9927000 {
		status = "okay";
		compatible = "qcom,spi-qup-v2";
		cell-index = <5>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0xf9927000 0x1000>,
			<0xf9904000 0x19000>;
		reg-names = "spi_physical", "spi_bam_physical";
		interrupt-names = "spi_irq", "spi_bam_irq";
		interrupts = <0 99 0>, <0 238 0>;
		spi-max-frequency = <19200000>;

		qcom,gpio-mosi = <&msmgpio 23 0>;
		qcom,gpio-miso = <&msmgpio 24 0>;
		qcom,gpio-clk  = <&msmgpio 26 0>;
		qcom,gpio-cs0  = <&msmgpio 25 0>;

		qcom,infinite-mode = <0>;
		qcom,use-bam;
		qcom,ver-reg-exists;
		qcom,bam-consumer-pipe-index = <20>;
		qcom,bam-producer-pipe-index = <21>;
		qcom,master-id = <86>;

		vfsspi-spi@0 {
			compatible = "vfsspi,vfs61xx";
			reg = <0>;
			spi-max-frequency = <19200000>;
			vfsspi-sleepPin = <&msmgpio 73 0x00>;
			vfsspi-drdyPin = <&msmgpio 94 0x01>;
			vfsspi-ldoPin = <&pm8941_gpios 20 0x00>; /* LDO_EN_1.8V */
			vfsspi-ldoPin2 = <&pm8941_gpios 27 0x00>; /* LDO_EN_3.3V */
			/* vfsspi-ocpflag = <&pm8941_gpios 23 0x00>; */
			/* vfsspi-ocpen = <&msmgpio 63 0x00>; */
			vfsspi-mosipin = <23>;
			vfsspi-misopin = <24>;
			vfsspi-cspin = <25>;
			vfsspi-clkpin = <26>;
			vfsspi-orient = <1>;
			vfsspi-ldocontrol= <1>;
			};
	};

	i2c@f9966000 {
		pn547@77 {
			compatible = "pn547";
			reg = <0x77>;
			interrupt-parent = <&msmgpio>;
			interrupts = <59 0>;
			pn547,irq-gpio = <&msmgpio 59 0x00>;
			pn547,en-gpio = <&pm8941_gpios 13 0x1>;
			pn547,wake-gpio = <&msmgpio 63 0x00>;
		};
	};
	/* BLSP#11 */
	i2c@f9967000 {
		status = "okay";
		bma255-i2c@18 {
			compatible = "bma255-i2c";
			reg = <0x18>;
			interrupt-parent = <&msmgpio>;
			interrupts = <86 0>;
			bma255-i2c,scl = <&msmgpio 84 0>;
			bma255-i2c,sda = <&msmgpio 83 0>;
			bma255-i2c,acc_int1-gpio = <&msmgpio 86 0x00>;
			bma255-i2c,acc_int2-gpio = <&msmgpio 49 0x00>;
			bma255-i2c,chip_pos = <7>;
			bma255-i2c,vdd-supply = <&pm8941_l18>;
			bma255-i2c,vdd-io-supply = <&pm8941_lvs1>;
		};
		bmg160-i2c@68 {
			compatible = "bmg160-i2c";
			reg = <0x68>;
			interrupt-parent = <&msmgpio>;
			interrupts = <74 0>;
			bmg160-i2c,gyro_int-gpio = <&msmgpio 74 0x00>;
			bmg160-i2c,gyro_drdy-gpio = <&msmgpio 89 0x00>;
			bmg160-i2c,chip_pos = <7>;
		};
		ak09911c-i2c@0C {
			compatible = "ak09911c-i2c";
			reg = <0x0c>;
			ak09911c-i2c,m_rst_n-gpio = <&msmgpio 81 0x01>;
			ak09911c-i2c,chip_pos = <4>;
		};
		cm3323-i2c@10 {
			compatible = "cm3323-i2c";
			reg = <0x10>;
		};
	};

		/* BLSP#12 */
	i2c@19 {
		cell-index = <19>;
		compatible = "i2c-gpio";
		gpios = <&msmgpio 87 0 /* sda */
		&msmgpio 88 0 /* scl */
		>;
		smb358@6A {
			compatible = "smb358,i2c";
			reg = <0x6A>;
		};

		sec-fuelgauge@36 {
			compatible = "sec-fuelgauge,i2c";
			reg = <0x36>;
			fuelgauge,fuel_int = <&pm8941_gpios 26 0x1>;
			/*fuelgauge,bat_int = <&pm8941_gpios 29 0x1>;*/
			fuelgauge,capacity_max = <1000>;
			fuelgauge,capacity_max_margin = <50>;
			fuelgauge,capacity_min = <0>;
			fuelgauge,capacity_calculation_type = <0x17>;
			fuelgauge,fuel_alert_soc = <1>;
			/* fuelgaguge,repeated_fuelalert; */
			fuelgauge,jig_gpio = <&msmgpio 76 0x00>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		input-name = "gpio-keys";
		home_key {
			label = "home_key";
			gpios = <&pm8941_gpios 3 0x1>;
			linux,input-type = <1>;
			linux,code = <172>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};
		vol_down {
			label = "volume_down";
			gpios = <&pm8941_gpios 2 0x1>;
			linux,input-type = <1>;
			linux,code = <114>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

		vol_up {
			label = "volume_up";
			gpios = <&pm8941_gpios 5 0x1>;
			linux,input-type = <1>;
			linux,code = <115>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};
	};

	spi@f9923000 {
		status = "okay";
	};

	sound {
		qcom,model = "msm8974-taiko-cdp-snd-card";
		qcom,hdmi-audio-rx;
		qcom,mainmic-bias-gpio = <&pm8941_gpios 33 0>;
		qcom,spkamp-en-gpio = <&msmgpio 43 0>;

		qcom,audio-routing =
			"RX_BIAS", "MCLK",
			"LDO_H", "MCLK",
			"AIF4 MAD", "MCLK",
			"Lineout_1 amp", "LINEOUT1",
			"Lineout_2 amp", "LINEOUT2",
			"Lineout_3 amp", "LINEOUT3",
			"Lineout_4 amp", "LINEOUT4",
			"AMIC1", "Main Mic Bias",
			"Main Mic Bias", "Main Mic",
			"AMIC2", "MIC BIAS2 External",
			"MIC BIAS2 External", "Headset Mic";
	};

	det_zones: det_zones {
		#list-det-cells = <4>;
	};

	but_zones: but_zones {
		#list-but-cells = <3>;
	};

	earjack {
		compatible = "sec_jack";
		qcom,earjack-read-vadc = <&pm8941_vadc>;
		qcom,earjack-detect-gpio = <&pm8941_gpios 22 0>;
		qcom,earjack-micbias-gpio = <&pm8941_gpios 34 0>;
		qcom,earjack-sendend-gpio = <&msmgpio 77 0>;

		det-zones-list = <&det_zones 3 10000 10 0>,
						<&det_zones 910 10000 10 0>,
						<&det_zones 2600 10000 10 1>,
						<&det_zones 9999 10000 10 1>;
		but-zones-list = <&but_zones 0 0 155>,
						<&but_zones 1 156 320>,
						<&but_zones 2 321 700>;
		mpp-channel-scaling = <4 1 3>;
	};

	hsic_host: hsic@f9a00000 {
		compatible = "qcom,hsic-host";
		reg = <0xf9a00000 0x400>;
		#address-cells = <0>;
		interrupt-parent = <&hsic_host>;
		interrupts = <0 1 2>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xffffffff>;
		interrupt-map = <0 &intc 0 136 0
			1 &intc 0 148 0
			2 &msmgpio 144 0x8>;
		interrupt-names = "core_irq", "async_irq", "wakeup";
		HSIC_VDDCX-supply = <&pm8841_s2>;
		HSIC_GDSC-supply = <&gdsc_usb_hsic>;
		hsic,strobe-gpio = <&msmgpio 144 0x00>;
		hsic,data-gpio = <&msmgpio 145 0x00>;
		hsic,ignore-cal-pad-config;
		hsic,strobe-pad-offset = <0x2050>;
		hsic,data-pad-offset = <0x2054>;
		qcom,msm-bus,name = "hsic";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<85 512 0 0>,
				<85 512 40000 160000>;
        };
	/* wlan0: qca,wlan {
		compatible = "qca,ar6004-hsic";
		qcom,msm-bus,name = "wlan";
		qcom,msm-bus,num-cases = <5>;
		qcom,msm-bus,active-only = <0>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<85 512 0 0>,
				<85 512 40000 160000>,
				<85 512 40000 320000>,
				<85 512 40000 480000>,
				<85 512 40000 640000>;
	}; */
	bluetooth_hostwake{
		compatible = "bluetooth_hostwake";
		interrupt-parent = <&msmgpio>;
		interrupts = <75 0>;
		bluetooth_hostwake,irq-gpio = <&msmgpio 75 0x00>;
	};
	/*BLSP #2, UART #8 */
	/*uart8: uart@f995e000 {
		cell-index = <0>;
		compatible = "qcom,msm-hsuart-v14";
		status = "ok";
		reg = <0xf995e000 0x1000>,
		      <0xf9944000 0x19000>;
		reg-names = "core_mem", "bam_mem";
		interrupts = <0 114 0>, <0 239 0>;
		interrupt-names = "core_irq", "bam_irq";
		qcom,bam-tx-ep-pipe-index = <2>;
		qcom,bam-rx-ep-pipe-index = <3>;
		qcom,msm-bus,name = "uart8";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<84 512 0 0>,
				<84 512 500 800>;
	};*/
};
&spmi_bus {
	qcom,pm8941@1 {
		pwm@b800 {
			qcom,period = <630>;
			qcom,mode-select = <0>;
			status = "okay";
			qcom,pwm {
				qcom,duty = <140>;
				label = "pwm";
			};
		};
		qcom,leds@d800 {
			status = "okay";
			qcom,wled_0 {
				label = "wled";
				linux,name = "wled:backlight";
				linux,default-trigger = "bkl-trigger";
				qcom,cs-out-en;
				qcom,op-fdbck = <1>;
				qcom,default-state = "off";
				qcom,max-current = <25>;
				qcom,ctrl-delay-us = <0>;
				qcom,boost-curr-lim = <3>;
				qcom,cp-sel = <0>;
				qcom,switch-freq = <2>;
				qcom,ovp-val = <2>;
				qcom,num-strings = <1>;
				qcom,id = <0>;
			};
		};
		qcom,leds@d900 {
			status = "disabled";
		};
		qcom,leds@da00 {
			status = "disabled";
		};
		qcom,leds@db00 {
			status = "disabled";
		};
		qcom,leds@dc00 {
			status = "disabled";
		};
		qcom,leds@dd00 {
			status = "disabled";
		};
		qcom,leds@de00 {
			status = "disabled";
		};
		qcom,leds@df00 {
			status = "disabled";
		};
		qcom,leds@e000 {
			status = "disabled";
		};
		qcom,leds@e100 {
			status = "disabled";
		};
	};
};
&sdcc1 {
       status = "disabled";
};
&sdcc2 {
	#address-cells = <0>;
	interrupt-parent = <&sdcc2>;
	interrupts = <0 1>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
					1 &intc 0 220 0>;
	interrupt-names = "core_irq", "bam_irq";
	//cd-gpios = <&msmgpio 62 0x1>;
	wp-gpios = <&pm8941_gpios 29 0x1>;

	vdd-io-supply = <&pm8941_s3>;

	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <2000 16000>;

	qcom,current-limit = <16000>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>;
	qcom,sup-voltages = <2950 2950>;

	status-cb = <2>;
	status = "disabled";
};
&sdcc3 {
	#address-cells = <0>;
	interrupt-parent = <&sdcc3>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 127 0
			1 &intc 0 223 0
			2 &msmgpio 62 0x3>;
	interrupt-names = "core_irq", "bam_irq", "status_irq";
	vdd-supply = <&pm8941_l21>;
	vdd-io-supply = <&pm8941_l21>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <9000 800000>;
	qcom,vdd-io-voltage-level = <2950000 2950000>;
	qcom,vdd-io-current-level = <6 22000>;
	qcom,sup-voltages = <2950 2950>;
	cd-gpios = <&msmgpio 62 0x1>;
	wp-gpios = <&pm8941_gpios 29 0x1>;
	status = "disabled";
};
&sdhc_1 {
	vdd-supply = <&pm8941_l20>;
	vdd-io-supply = <&pm8941_s3>;
	qcom,vdd-always-on;
	qcom,vdd-lpm-sup;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <800 500000>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <250 154000>;
	qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */
	qcom,nonremovable;
	status = "ok";
};
&sdhc_2 {
	#address-cells = <0>;
	interrupt-parent = <&sdhc_2>;
	interrupts = <0 1>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
			1 &intc 0 221 0>;
	interrupt-names = "hc_irq", "pwr_irq";
	//cd-gpios = <&msmgpio 62 0x1>;

	vdd-supply = <&pm8941_s3>;
	vdd-io-supply = <&pm8941_s3>;

	qcom,vdd-always-on;
	qcom,vdd-voltage-level = <1800000 1800000>;
	qcom,vdd-current-level = <2000 32000>;

	qcom,vdd-io-always-on;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <2000 32000>;

	qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-drv-on = <0x4 0x3 0x3>; /* 10mA, 8mA, 8mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */

	qcom,current-limit = <32000>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>;

	qcom,sup-voltages = <2950 2950>;

	status-cb = <2>;
	status = "ok";
};
&sdhc_3 {
	#address-cells = <0>;
	interrupt-parent = <&sdhc_3>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 127 0
			1 &intc 0 224 0
			2 &msmgpio 62 0x3>;
	interrupt-names = "hc_irq", "pwr_irq", "status_irq";
	vdd-supply = <&pm8941_l21>;
	vdd-io-supply = <&pm8941_l21>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <9000 800000>;
	qcom,vdd-io-voltage-level = <2950000 2950000>;
	qcom,vdd-io-current-level = <6 22000>;
	qcom,sup-voltages = <2950 2950>;
	cd-gpios = <&msmgpio 62 0x1>;
	wp-gpios = <&pm8941_gpios 29 0x1>;
	status = "ok";
};
/* Drive strength recommendations for clock line from hardware team is 10 mA.
 * But since the driver has been been using the below values from the start
 * without any problems, continue to use those.
 */
&sdcc1 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};
&sdcc2 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};
&sdhc_1 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};
&sdhc_2 {
	qcom,pad-drv-on = <0x4 0x3 0x3>; /* 10mA, 8mA, 8mA */
};
&uart7 {
	status = "disabled";
	qcom,tx-gpio = <&msmgpio 41 0x00>;
	qcom,rx-gpio = <&msmgpio 42 0x00>;
	qcom,cts-gpio = <&msmgpio 43 0x00>;
	qcom,rfr-gpio = <&msmgpio 44 0x00>;
};
&uart8 {
	status = "ok";
	qcom,tx-gpio = <&msmgpio 45 0x00>;
	qcom,rx-gpio = <&msmgpio 46 0x00>;
	qcom,cts-gpio = <&msmgpio 47 0x00>;
	qcom,rfr-gpio = <&msmgpio 48 0x00>;
	qcom,inject-rx-on-wakeup = <1>;
	qcom,rx-char-to-inject = <0xFD>;
};
&usb3 {
	qcom,vbus-detect-gpio = <&msmgpio 50 0>;
};

&pm8941_bms {
	status = "ok";
};

&pm8941_l10 {
/* TSP 1.8V IO regulator */
	regulator-min-microvolt = <1850000>;
	regulator-max-microvolt = <1850000>;
	qcom,init-voltage = <1850000>;
};

&pm8941_chg {
	status = "ok";
	qcom,chgr@1000 {
		status = "ok";
	};
	qcom,buck@1100 {
		status = "ok";
	};
	qcom,usb-chgpth@1300 {
		status = "ok";
	};
	qcom,dc-chgpth@1400 {
		status = "ok";
	};
	qcom,boost@1500 {
		status = "ok";
	};
	qcom,chg-misc@1600 {
		status = "ok";
	};
};
&pm8941_gpios {
	gpio@c000 { /* GPIO 1 */
		/* CAM_MOVIE_EN pin */
		qcom,mode = <1>;	/* DIG_OUT */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DOWN */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@c100 { /* GPIO 2 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,select = <0>;
	};
	gpio@c200 { /* GPIO 3 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
	};
	gpio@c300 { /* GPIO 4 */
		qcom,mode = <0>;
		qcom,pull = <5>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
	};
	gpio@c400 { /* GPIO 5 */
		qcom,mode = <0>;
		qcom,pull = <0>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
	};
	gpio@c500 { /* GPIO 6 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@c600 { /* GPIO 7 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
		qcom,pull = <5>;		/* QPNP_PIN_PULL_NO */
	};
	gpio@c700 { /* GPIO 8 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@c800 { /* GPIO 9 */
		qcom,mode = <0>;
		qcom,pull = <5>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;
	};
	gpio@c900 { /* GPIO 10 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@ca00 { /* GPIO 11 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@cb00 { /* GPIO 12 */
		/* TCON_EN (3.3V) */
		qcom,mode = <1>;  /* QPNP_PIN_MODE_DIG_OUT */
		qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
		qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
		qcom,out-strength = <3>; /* QPNP_PIN_OUT_STRENGTH_HIGH */
		qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};
	gpio@cc00 { /* GPIO 13 */
		/* nc */
		qcom,mode = <0>;  /* QPNP_PIN_MODE_DIG_IN */
		qcom,output-type = <0>;  /* QPNP_PIN_OUT_BUF_CMOS */
		qcom,pull = <4>;  /* QPNP_PIN_PULL_DOWN */
		qcom,vin-sel = <2>;  /* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;  /* Constant */
		qcom,master-en = <1>;  /* Enable GPIO */
	};
	gpio@cd00 { /* GPIO 14 */
		/* LCD_EN (1.8V) */
		qcom,mode = <1>;  /* QPNP_PIN_MODE_DIG_OUT */
		qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
		qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
		qcom,out-strength = <3>; /* QPNP_PIN_OUT_STRENGTH_HIGH */
		qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};
	gpio@ce00 { /* GPIO 15 */
		qcom,mode = <1>;
		qcom,output-type = <0>;
		qcom,pull = <5>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <3>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
	};
	gpio@cf00 { /* GPIO 16 used for BT sleep_clk*/
		qcom,mode = <1>;
		qcom,output-type = <0>;
		qcom,pull = <5>;
		qcom,out-strength = <3>;
		qcom,vin-sel = <2>;
		qcom,src-sel = <3>;
		qcom,master_en = <1>;
	};
	gpio@d000 { /* GPIO 17 */
		qcom,mode = <0>;		/* QPNP_PIN_MODE_DIG_IN */
		qcom,output-type = <0>;		/* QPNP_PIN_OUT_BUF_CMOS */
		qcom,pull = <5>;		/* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>; 		/* QPNP_PIN_VIN2 */
		qcom,out-strength = <3>;	/* QPNP_PIN_OUT_STRENGTH_HIGH */
		qcom,src-sel = <0>;		/* QPNP_PIN_SEL_FUNC_2 : LPG8*/
		qcom,master-en = <1>;
	};
	gpio@d100 { /* GPIO 18 */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <0>;		/* Output low initially */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <2>;	/* Medium drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
	};
	gpio@d200 { /* GPIO 19 */
		/* nc */
		qcom,mode = <0>;  /* QPNP_PIN_MODE_DIG_IN */
		qcom,output-type = <0>;  /* QPNP_PIN_OUT_BUF_CMOS */
		qcom,pull = <4>;  /* QPNP_PIN_PULL_DOWN */
		qcom,vin-sel = <2>;  /* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;  /* Constant */
		qcom,master-en = <1>;  /* Enable GPIO */
	};
	gpio@d300 { /* GPIO 20 */
		/* fingerprint sensor BTP_LDO_EN */
		qcom,mode = <1>;			/* Digital output */
		qcom,output-type = <0>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <1>;	/* Low drive strength */
		qcom,src-sel = <0>;
		qcom,master-en = <1>;		/* Enable GPIO */
	};
	gpio@d400 { /* GPIO 21 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@d500 { /* GPIO 22 */
		qcom,mode = <0>;	/* input */
		qcom,pull = <5>;		/* pull-up with 30uA current strength */
		qcom,vin-sel = <2>;	/* VIN=S3 */
		qcom,src-sel = <0>;	/* constant */
		qcom,master_en = <1>;
	};
	gpio@d600 { /* GPIO 23 */
		/* fingerprint sensor OCP_FLAG */
		qcom,mode = <0>;			/* Digital Input */
		qcom,output-type = <0>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <1>;	/* Low drive strength */
		qcom,src-sel = <0>;
		qcom,master-en = <1>;		/* Enable GPIO */
	};
	gpio@d700 { /* GPIO 24 */
		/* VT sensor rst pin */
		qcom,mode = <1>;		/* DIG_OUT */
		qcom,pull = <5>;		/* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@d800 { /* GPIO 25 */
		/* 8M sensor rst pin */
		qcom,mode = <1>;		/* Digital output */
		qcom,pull = <5>;			/* QPNP_PIN_PULL_NO */
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <0>;		/* Output low initially */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <2>;	/* Medium drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
	};
	gpio@d900 { /* GPIO 26 */
		qcom,mode = <0>;		/* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <5>;		/* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>;		/* QPNP_PIN_VIN2 */
		qcom,src-sel = <0>;		/* QPNP_PIN_SEL_FUNC_CONSTANT */
	};
	gpio@da00 { /* GPIO 27 */
		/* fingerprint sensor BTP_LDO_EN2 */
		qcom,mode = <1>;			/* Digital output */
		qcom,output-type = <0>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <1>;	/* Low drive strength */
		qcom,src-sel = <0>;
		qcom,master-en = <1>;		/* Enable GPIO */
	};
	gpio@db00 { /* GPIO 28 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@dc00 { /* GPIO 29 */
		qcom,mode = <0>;			/* input */
		qcom,output-type = <0>;	/* CMOS logic */
		qcom,vin-sel = <2>;		/* QPNP_PIN_VIN2 */
		qcom,out-strength = <2>;	/* Medium drive strength */
		qcom,src-sel = <0>;		/* Constant */
		qcom,pull = <5>;			/* QPNP_PIN_PULL_NO */
		qcom,master-en = <1>;	/* Enable GPIO */
	};
	gpio@dd00 { /* GPIO 30 */
		qcom,mode = <0>;
		qcom,output-type = <0>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <2>;
		qcom,pull = <5>;
		qcom,master-en = <1>;
	};
	gpio@de00 { /* GPIO 31 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@df00 { /* GPIO 32 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@e000 { /* GPIO 33 */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;	/* CMOS logic */
		qcom,pull = <5>;			/* QPNP_PIN_PULL_NO */
		qcom,invert = <0>;		/* Output low initially */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <2>;	/* Medium drive strength */
		qcom,master-en = <1>;	/* Enable GPIO */
	};
	gpio@e100 { /* GPIO 34 */
		qcom,mode = <1>;		/* Digital output */
		qcom,output-type = <0>;	/* CMOS logic */
		qcom,pull = <5>;			/* QPNP_PIN_PULL_NO */
		qcom,invert = <0>;		/* Output low initially */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <2>;	/* Medium drive strength */
		qcom,master-en = <1>;	/* Enable GPIO */
	};
	gpio@e200 { /* GPIO 35 */
		qcom,vin-sel = <2>;		/* PM8941 S3 = 1.8 V */
	};
	gpio@e300 { /* GPIO 36 */
		qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */
		qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
		qcom,invert = <0>; /* QPNP_PIN_INVERT_DISABLE */
		qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
		qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
		qcom,out-strength = <3>; /* QPNP_PIN_OUT_STRENGTH_HIGH */
		qcom,src-sel = <3>; /* QPNP_PIN_SEL_FUNC_2 : LPG8*/
		qcom,master-en = <1>;
	};
};
&pm8941_mpps {
	mpp@a000 { /* MPP 1 */
		status = "disabled";
	};
	mpp@a100 { /* MPP 2 */
		qcom,mode = <0>; /* DIG_IN */
		qcom,vin-sel = <2>; /* S3A 1.8v */
		qcom,src-sel = <0>; /* CONSTANT */
		qcom,master-en = <1>; /* ENABLE MPP */
	};
	mpp@a200 { /* MPP 3 */
	};
	mpp@a300 { /* MPP 4 */
		qcom,mode = <4>; /* AIN input */
		qcom,ain-route = <3>; /* AMUX 8 */
		qcom,master-en = <1>;/* Enable MPP4 */
		qcom,src-sel = <0>; /* Function constant */
	};
	mpp@a400 { /* MPP 5 */
		qcom,mode = <4>; /* AIN input */
		qcom,ain-route = <0>; /* AMUX 5 */
		qcom,master-en = <1>;/* Enable MPP5 */
		qcom,src-sel = <0>; /* Function constant */
	};
	mpp@a500 { /* MPP 6 */
		/* SPI_ETH_RST config */
		qcom,mode = <1>; /* DIG_OUT */
		qcom,output-type = <0>; /* CMOS */
		qcom,vin-sel = <2>; /* PM8941_S3 1.8V > 1.6V */
		qcom,src-sel = <0>; /* CONSTANT */
		qcom,master-en = <1>; /* ENABLE MPP */
	};
	mpp@a600 { /* MPP 7 */
		/* CAM_FLASH_EN pin */
		qcom,mode = <1>; 		/* DIG_OUT */
		qcom,vin-sel = <2>;		/* S3A 1.8v */
		qcom,src-sel = <0>;		/* CONSTANT */
		qcom,master-en = <1>;	/* ENABLE MPP */
	};
	mpp@a700 { /* MPP 8 */
		qcom,vin-sel = <2>;		/* S3A 1.8v */
	};
};
&pm8841_mpps {
	mpp@a000 { /* MPP 1 */
	};
	mpp@a100 { /* MPP 2 */
	};
	mpp@a200 { /* MPP 3 */
	};
	mpp@a300 { /* MPP 4 */
	};
};
/* CoreSight */
&tpiu {
	qcom,seta-gpios = <&msmgpio 31 0>,
			  <&msmgpio 32 0>,
			  <&msmgpio 33 0>,
			  <&msmgpio 34 0>,
			  <&msmgpio 35 0>,
			  <&msmgpio 36 0>,
			  <&msmgpio 37 0>,
			  <&msmgpio 38 0>,
			  <&msmgpio 39 0>,
			  <&msmgpio 40 0>,
			  <&msmgpio 41 0>,
			  <&msmgpio 42 0>,
			  <&msmgpio 43 0>,
			  <&msmgpio 44 0>,
			  <&msmgpio 45 0>,
			  <&msmgpio 46 0>,
			  <&msmgpio 47 0>,
			  <&msmgpio 48 0>;
	qcom,seta-gpios-func = <4 4 4 3 4 4 4 3 4 3 5 5 5 5 4 4 5 5>;
	qcom,seta-gpios-drv =  <7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7>;
	qcom,seta-gpios-pull = <0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>;
	qcom,seta-gpios-dir =  <2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2>;
	qcom,setb-gpios = <&msmgpio 15 0>,
			  <&msmgpio 16 0>,
			  <&msmgpio 17 0>,
			  <&msmgpio 18 0>,
			  <&msmgpio 19 0>,
			  <&msmgpio 20 0>,
			  <&msmgpio 21 0>,
			  <&msmgpio 22 0>,
			  <&msmgpio 23 0>,
			  <&msmgpio 24 0>,
			  <&msmgpio 25 0>,
			  <&msmgpio 26 0>,
			  <&msmgpio 27 0>,
			  <&msmgpio 28 0>,
			  <&msmgpio 89 0>,
			  <&msmgpio 90 0>,
			  <&msmgpio 91 0>,
			  <&msmgpio 92 0>;
	qcom,setb-gpios-func = <2 2 2 2 5 5 5 5 6 6 6 7 7 5 2 3 3 3>;
	qcom,setb-gpios-drv =  <7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7>;
	qcom,setb-gpios-pull = <0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>;
	qcom,setb-gpios-dir =  <2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2>;
};
&vph_pwr_vreg {
	status = "ok";
};
&slim_msm {
	taiko_codec {
		qcom,cdc-reset-gpio = <&msmgpio 78 0>;
		qcom,cdc-micbias1-ext-cap;
		qcom,cdc-micbias2-ext-cap;
		qcom,cdc-micbias3-ext-cap;
		qcom,cdc-micbias4-ext-cap;

		/*
		 * Liquid has external spkrdrv supply. Give a dummy supply to
		 * make codec driver's happy.
		 */
		cdc-vdd-spkdrv-supply = <&vph_pwr_vreg>;
		qcom,cdc-vdd-spkdrv-voltage = <0 0>;
		qcom,cdc-vdd-spkdrv-current = <0>;
		qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv";
	};
};

